package cn.edu.wynu.mapper;

import cn.edu.wynu.pojo.Employee;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface EmployeeMapper {

    /**
     * 基于xml实现映射器
     * @param id 主键id
     * @return 员工实例
     */
    Employee queryEmployeeById(Integer id);

    /**
     * 基于注解实现映射器
     * @return 所有员工
     */
    @Select("select emp_id empId,emp_name empName, emp_salary empSalary from t_emp")
    List<Employee> queryAllEmployee();

    /**
     * 测试通过别名指定类型
     * @param id 主键id
     * @return 员工实例
     */
    Employee testAliasQueryEmployee(Integer id);

    /**
     * 查询工资高于指定值的员工信息
     * @param salary 工资阈值
     * @return 员工列表
     */
    List<Employee> querySalaryMoreThan(Float salary);

    /**
     * 自动将开启驼峰命名自动映射，即从经典数据库列名 A_COLUMN 映射到经典 Java 属性名 aColumn
     * @param id 员工id
     * @return 员工
     */
    Employee autoMapUnderscoreToCamelCase(Integer id);
}
